package org.lex.io;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.concurrent.Callable;

/**
 * �������ػ����ϴ��ļ��ĳ�������Ľӿ� ��һ����ͨ���ԣ���������һ���߳��ں�ִ̨��
 * 
 * @author Daniel Liu
 */
public interface StreamRedirector extends Callable<StreamRedirector> {
	public void setInputStream(InputStream in);

	public void setOutputStream(OutputStream out);

	public StreamRedirector call() throws IOException;

	public void abort();

	public void resetCounter();

	public long getReadBytesCount();

	public long getWriteBytesCount();
}
